// utils/request.js

/**
 * 封装uni-app的网络请求为Promise风格
 * @param {Object} options 请求配置
 * @param {string} options.url 请求地址
 * @param {string} [options.method='GET'] 请求方法
 * @param {Object} [options.data={}] 请求参数
 * @param {number} [options.timeout=10000] 超时时间(毫秒)
 * @param {Object} [options.header={}] 请求头
 * @returns {Promise} 返回Promise对象
 */
export const request = (options) => {
	// 默认配置
	const defaultOptions = {
		method: 'GET',
		data: {},
		timeout: 10000,
		header: {
			'Content-Type': 'application/json'
		}
	};

	// 合并配置
	const requestOptions = {
		...defaultOptions,
		...options,
		header: {
			...defaultOptions.header,
			...(options.header || {})
		}
	};

	return new Promise((resolve, reject) => {

		uni.request({
			...requestOptions,
			success: (res) => {

				if (res.statusCode >= 200 && res.statusCode < 300) {
					resolve(res.data);
				} else {

					reject(new Error(`请求失败: ${res.statusCode}`));
				}
			},
			fail: (err) => {

				reject(new Error(`网络错误: ${err.errMsg || '未知错误'}`));
			},
			complete: () => {

			}
		});
	});
};


export const get = (url, params = {}, options = {}) => {
	return request({
		url:`https://apis.netstart.cn/mogujie${url}`,
		method: 'GET',
		data: params,
		...options
	});
};



export default {
	get,
};